#include <hxcpp.h>

#ifndef INCLUDED_haxe_Public
#include <haxe/Public.h>
#endif
#ifndef INCLUDED_jax_JTryCatch
#include <jax/JTryCatch.h>
#endif
namespace jax{

Void JTryCatch_obj::__construct()
{
{
}
;
	return null();
}

JTryCatch_obj::~JTryCatch_obj() { }

Dynamic JTryCatch_obj::__CreateEmpty() { return  new JTryCatch_obj; }
hx::ObjectPtr< JTryCatch_obj > JTryCatch_obj::__new()
{  hx::ObjectPtr< JTryCatch_obj > result = new JTryCatch_obj();
	result->__construct();
	return result;}

Dynamic JTryCatch_obj::__Create(hx::DynamicArray inArgs)
{  hx::ObjectPtr< JTryCatch_obj > result = new JTryCatch_obj();
	result->__construct();
	return result;}

hx::Object *JTryCatch_obj::__ToInterface(const type_info &inType) {
	if (inType==typeid( ::haxe::Public_obj)) return operator ::haxe::Public_obj *();
	return super::__ToInterface(inType);
}


JTryCatch_obj::JTryCatch_obj()
{
}

void JTryCatch_obj::__Mark(HX_MARK_PARAMS)
{
	HX_MARK_BEGIN_CLASS(JTryCatch);
	HX_MARK_MEMBER_NAME(start_pc,"start_pc");
	HX_MARK_MEMBER_NAME(end_pc,"end_pc");
	HX_MARK_MEMBER_NAME(handler_pc,"handler_pc");
	HX_MARK_MEMBER_NAME(catch_type,"catch_type");
	HX_MARK_END_CLASS();
}

void JTryCatch_obj::__Visit(HX_VISIT_PARAMS)
{
	HX_VISIT_MEMBER_NAME(start_pc,"start_pc");
	HX_VISIT_MEMBER_NAME(end_pc,"end_pc");
	HX_VISIT_MEMBER_NAME(handler_pc,"handler_pc");
	HX_VISIT_MEMBER_NAME(catch_type,"catch_type");
}

Dynamic JTryCatch_obj::__Field(const ::String &inName,bool inCallProp)
{
	switch(inName.length) {
	case 6:
		if (HX_FIELD_EQ(inName,"end_pc") ) { return end_pc; }
		break;
	case 8:
		if (HX_FIELD_EQ(inName,"start_pc") ) { return start_pc; }
		break;
	case 10:
		if (HX_FIELD_EQ(inName,"handler_pc") ) { return handler_pc; }
		if (HX_FIELD_EQ(inName,"catch_type") ) { return catch_type; }
	}
	return super::__Field(inName,inCallProp);
}

Dynamic JTryCatch_obj::__SetField(const ::String &inName,const Dynamic &inValue,bool inCallProp)
{
	switch(inName.length) {
	case 6:
		if (HX_FIELD_EQ(inName,"end_pc") ) { end_pc=inValue.Cast< int >(); return inValue; }
		break;
	case 8:
		if (HX_FIELD_EQ(inName,"start_pc") ) { start_pc=inValue.Cast< int >(); return inValue; }
		break;
	case 10:
		if (HX_FIELD_EQ(inName,"handler_pc") ) { handler_pc=inValue.Cast< int >(); return inValue; }
		if (HX_FIELD_EQ(inName,"catch_type") ) { catch_type=inValue.Cast< int >(); return inValue; }
	}
	return super::__SetField(inName,inValue,inCallProp);
}

void JTryCatch_obj::__GetFields(Array< ::String> &outFields)
{
	outFields->push(HX_CSTRING("start_pc"));
	outFields->push(HX_CSTRING("end_pc"));
	outFields->push(HX_CSTRING("handler_pc"));
	outFields->push(HX_CSTRING("catch_type"));
	super::__GetFields(outFields);
};

static ::String sStaticFields[] = {
	String(null()) };

static ::String sMemberFields[] = {
	HX_CSTRING("start_pc"),
	HX_CSTRING("end_pc"),
	HX_CSTRING("handler_pc"),
	HX_CSTRING("catch_type"),
	String(null()) };

static void sMarkStatics(HX_MARK_PARAMS) {
};

static void sVisitStatics(HX_VISIT_PARAMS) {
	HX_VISIT_MEMBER_NAME(JTryCatch_obj::__mClass,"__mClass");
};

Class JTryCatch_obj::__mClass;

void JTryCatch_obj::__register()
{
	Static(__mClass) = hx::RegisterClass(HX_CSTRING("jax.JTryCatch"), hx::TCanCast< JTryCatch_obj> ,sStaticFields,sMemberFields,
	&__CreateEmpty, &__Create,
	&super::__SGetClass(), 0, sMarkStatics, sVisitStatics);
}

void JTryCatch_obj::__boot()
{
}

} // end namespace jax
